Estoy trabajando con php y javascript, tengo texarea y quiero cada vez que ingreso cualquier texto y presiono "Tecla Intro", entonces debería mostrarse la alerta, pero en este momento el texto va a la siguiente línea en lugar de mostrar el cuadro de alerta.
Aquí está mi código html
<textarea placeholder="Write a comment1…" id="txt'.$FeedId.'" rows="1" class="reply_post_new" style="overflow:hidden" onkeypress="return Addcomment1(this)"></textarea>Y aquí está mi código de script, ¿dónde me equivoco?
<script> function Addcomment1(e) { f (e.keyCode == 13) { alert('Hello world'); return false; } } </script>La causa del problema es que está pasando el elemento de área de texto a la función en lugar del objeto de evento.
Sus otros problemas son que está utilizando un atributo de evento intrínseco (que viene con un montón de errores) y la propiedad obsoleta keyCode . También cometiste un error tipográfico y escribiste mal if . Finalmente, los nombres de funciones que comienzan con una letra mayúscula se reservan tradicionalmente para funciones de construcción, lo que no ocurre con la suya.
const textarea = document.querySelector('textarea'); textarea.addEventListener('keypress', addComment1); function addComment1(e) { if (e.key === "Enter") { alert('Hello world'); e.preventDefault(); } } <textarea placeholder="Write a comment1…" id="txt'.$FeedId.'" rows="1" class="reply_post_new" style="overflow:hidden"></textarea> Y todo eso aparte, dado que tiene una sola línea <textarea> donde está bloqueando el uso de la tecla Intro... probablemente debería deshacerse del JS y simplemente usar <input type="text> en su lugar.
El argumento this en la función Addcomment1(this) devuelve el elemento en sí, no el evento clave que desea obtener, por lo que debe usar javascript addEventListener para obtener la clave del evento y usar key en lugar de keyCode , ya que es una propiedad obsoleta
HTML:
<textarea placeholder="Write a comment1…" id="txt'.$FeedId.'" rows="1" class="reply_post_new" style="overflow:hidden"></textarea>JS:
let textarea = document.querySelector('.reply_post_new'); textarea.addEventListener('keypress', function(e) { if(e.keyCode == 13) { alert('Hello world'); return false; } });